#ifndef __RenderingAlphabet__h__included__
#define __RenderingAlphabet__h__included__

#include "Image.h"
#include "Font.h"

#include <string>
#include <map>

using neiderra::rendering::Image;
//using neiderra::rendering::RenderingFont;
using neiderra::core::iObject;
using std::string;
using std::map;

namespace neiderra {
	namespace rendering {

		class Alphabet : public iObject {
		public:
			Alphabet(RenderingFont*);
			virtual ~Alphabet();

			// TODO encoding support
			virtual Image* getLetter(unsigned);
			virtual unsigned getLetterBase(){return _base;}
			virtual void setLetter(unsigned, Image*);
			virtual void setLetterBase(unsigned int);

			// convert string to Image
			virtual Image* compose(const string&);

			virtual RenderingFont* getFont();

		protected:
			RenderingFont* _font;
			map<unsigned, Image*> _letters;
			unsigned int _base;
		};

	}
}

#endif
